There are existing solutions for the virtualization of network functions.
Most existing solutions to the problem of how software is defined, deployed, or computed fall into a category that can be labeled hardware follows software. This means that for a piece of software that is to be installed (a VNF-module in the terminology used herein), requirements on the hardware are fully specified. An example for this is given by WO 2013/043326. The description of the module contains thus information on the requirements and on the performance that a module achieves on such a specific hardware platform. An example is “this module provides a processing capacity of 1500 bearers and requires an Intel Xeon E7 processor and 8 GB of RAM”. This has the disadvantages that firstly, if the hardware provides more resources than specified, capacity might be wasted, and secondly if only less powerful hardware is available, it might not be possible altogether to install and especially execute the module on this hardware.
Another example is given in US2012/0055398, where virtual groups of resources are defined based on performance requirements or type of VMs that can be instantiated on the cloud. The proposed cloud management system performs the mapping between the request and the virtual groups. However, such an invention considers (only) the instantiation of a single VM.
The concept of a template to automatically deploy a set of VMs is well known in the DevOps (development and operation) community. Tools like Chef (Opscode. Chef. [Online]. Available: opscode.com/chef.) or Puppet (Puppet Labs. Puppet. [Online]. Available: puppetlabs.com) can be used to describe the whole IT system configuration as code. These templates can be used to automatically deploy a system composed by different VMs running different applications (e.g. a web server connected to a database server). They focus on automating the deployment of software across several VMs and they provide very high level description of the hardware requirements for these VMs (e.g. number of vCPUs, RAM, storage capacity). However, these hardware requirements are static and if the cloud service provider does not match them the deployment is not feasible.
It is therefore an object of the present invention to provide a virtualization method and apparatus which can overcome the deficiencies of the prior art.